package com.zzg.pattern.facade;

import com.zzg.pattern.facade.inter.Shape;
import com.zzg.pattern.facade.inter.impl.Circle;
import com.zzg.pattern.facade.inter.impl.Rectangle;

/**
 * 
 * @ClassName:  Facade 外观模式   
 * @Description:客户端不再需要关注实例化时应该使用哪个实现类，直接调用服务端提供的方法就可以。   
 * @author: 世纪伟图 -zzg
 * @date:   2019年2月12日 下午3:15:33   
 *     
 * @Copyright: 2019 www.digipower.cn 
 * 注意：本内容仅限于深圳市世纪伟图科技开发有限公司内部使用，禁止用于其他的商业目的
 */
public class Facade {
	private Shape circle;
	private Shape rectangle;
	
	public Facade() {
		super();
		this.circle = new Circle();
		this.rectangle = new Rectangle();
	}
	
	public void drawCircle(){
		this.circle.draw();
	}
	
	public void drawRectangle() {
		this.rectangle.draw();
	}



	public static void main(String[] args) {
		// TODO Auto-generated method stub
//      待优化代码
//		Shape circle = new Circle();
//		circle.draw();
//		
//		Shape rectangle = new Rectangle();
//		rectangle.draw();
		
		// 优化后的代码
		Facade facade = new Facade();
		facade.drawCircle();
		facade.drawRectangle();
	}

}
